#ifndef _GAME_H_
#define _GAME_H_

#include <windows.h>
#include "GraphicsDevice.h"
#include "spritefont.h"
#include "spritebatch.h"
#include "DebugCamera.h"
#include "InputManager.h"

// Globals, TODO:Settings App?
const bool FULL_SCREEN = false;
const bool VSYNC_ENABLED = true;
const float SCREEN_DEPTH = 1000.0f;
const float SCREEN_NEAR = 0.1f;


class Game
{
public:
	Game();
	Game(const Game&);
	~Game();

	bool Initialize(int, int, HWND, InputManager*);
	void Shutdown();
	bool Update(GameTime gameTime);
	bool Draw(GameTime gameTime); 

	ID3D11Device* GetD3DDevice() {return m_D3D->GetDevice();}
	GraphicsDevice* GetGraphicsDevice() {return m_D3D;}
private:
	GraphicsDevice* m_D3D;
	//SpriteFont	m_font;
	std::unique_ptr<SpriteFont>		m_sFont;
	std::unique_ptr<SpriteBatch>	m_spriteBatch;

	DebugCamera* m_camera;
	class Quad* m_quad;
	InputManager* m_inputManager;
};

#endif

